package com.hb.unic.core.base;

import java.util.List;
import java.util.stream.Collectors;

import org.springframework.util.CollectionUtils;

/**
 * 分页工具类
 *
 * @since v1.0，2023/8/31 23:51，create by Mr.Huang.
 */
public class PageUtils {

    /**
     * 计算起始位置
     *
     * @param pageNum 当前页
     * @param pageSize 每页条数
     * @return 开始位置
     */
    public static Integer getStartRow(int pageNum, int pageSize) {
        return (pageNum - 1) * pageSize;
    }

    /**
     * 物理分页
     *
     * @param tList 数据集合
     * @param pageNum 第几页
     * @param pageSize 每页条数
     * @return 分页结果
     */
    public static <T> PageResult<T> paging(List<T> tList, int pageNum, int pageSize) {
        int total = CollectionUtils.isEmpty(tList) ? 0 : tList.size();
        int startRow = getStartRow(pageNum, pageSize);
        List<T> list = tList.stream().skip(startRow).limit(pageSize).collect(Collectors.toList());
        return new PageResult<>(list, total);
    }

}
